Frames or packets of information may be used to communicate with a storage device—such as a SAS (Serial Attached SCSI (Small Computer System Interface)) HBA (Host Bus Adapter) (Information technology-Serial Attached SCSI (SAS), American National Standards Institute (ANSI) International Committee for Information Technology Standards (INCITS) 376-2003), FC (Fiber Channel) HBA (Fibre Channel Framing and Signaling Interface, ANSI/INCITS 373:2003), iSCSI (Internet Small Computer Systems Interface) HBA (Internet Engineering Task Force Request for Comment 3720), etc.—or other devices that transfer data. Frames received from a device may be handled by firmware or hardware in a serial fashion. In order to maintain the line rate, the frame processing time has to be less than or equal to the frame receive time. As input/output (I/O) link speeds increase, the time available process a frame received on the link is decreased.
The frames of information may vary in size. Each frame may include an information unit and framing information that provides information about the frame and the information unit it contains.
A transport layer may be responsible for processing the frames received or transmitted by a device such as an HBA. The transport layer may include a receive frame processor to receive frames, determine the frame type, verify that the frame is valid, and cause the frame to be processed appropriately.
If the receive frame processor receives several frames with relatively small information units it is likely that the receive frame processor will require more time to process these frames than the transmit time provides. This may require that the data link be stalled to lower the effective transmission speed of the data link.